home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / programming / Final Cartridge III software.sfx / excldegadget.asm (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1994-08-11  |  3.0 KB  |  153 lines

  1. 1000 ; excludegadget date: 10-03-88
  2. 1010 ;---------------------------------
  3. 1020 ;
  4. 1030 ; the final cartridge iii desktop
  5. 1040 ;
  6. 1050 ;     riska h&p, marc derksen
  7. 1060 ;
  8. 1070 ;     p r o j e c t   d e m o
  9. 1080 ;
  10. 1090 ;---------------------------------
  11. 1100 ;
  12. 1110 *=$0be1,$0801
  13. 1120 buf0=$a3
  14. 1130 buf1=$a4
  15. 1140 gosub=$de05  ; system constants
  16. 1150 close=$01
  17. 1160 toback=$02
  18. 1170 dragbr=$08
  19. 1180 invert=$01
  20. 1190 status=$02
  21. 1200 bordr=$04
  22. 1210 toggle=$20
  23. 1220 exclude=$40
  24. 1230 ;
  25. 1240 ;------ basic startup data -----
  26. 1250 wor $0817,1987  ; line number
  27. 1260 byt $9e  ; basic sys-code
  28. 1270 byt "2076 desk[164]p v1.0",0,0,0
  29. 1280 byt 1,0  ; version
  30. 1290 byt 2  ; size in blocks
  31. 1300 jmp $dfe8  ; startup
  32. 1310 byt 0  ; unused
  33. 1320 ;
  34. 1330 mn3it1=$c0c2
  35. 1340 mn3it2=$c0ca
  36. 1350 ;------ main ------------------
  37. 1360 start jsr survive
  38. 1370 ldx #<item2  ; set new menu
  39. 1380 ldy #>item2
  40. 1390 stx mn3it1
  41. 1400 sty mn3it1+1
  42. 1410 rts
  43. 1420 ;
  44. 1430 ;------ menuitem structure ---
  45. 1440 item2 wor item3  ; nextitem
  46. 1450 wor it2txt  ; item name
  47. 1460 wor openwd  ; item exec
  48. 1470 byt 1,0  ; enable item
  49. 1480 item3 wor 0  ; no nextitem
  50. 1490 wor it3txt
  51. 1500 wor unlink
  52. 1510 byt 1,0
  53. 1520 ;
  54. 1530 it2txt byt "[196][197][205][207][160][215][196]",0
  55. 1540 it3txt byt "[213][206][204][201][206][203]",0
  56. 1550 ;
  57. 1560 ggflags=invert+bordr+toggle+exclude
  58. 1570 ;------ window ---------------
  59. 1580 openwd ldx #<window  ; call openwd
  60. 1590 ldy #>window
  61. 1600 lda #openwindow
  62. 1610 jmp gosub
  63. 1620 ;
  64. 1630 window wor gadget1  ; first gadget
  65. 1640 byt 40,40  ; wdx,wdy
  66. 1650 byt 110,50  ; width,height
  67. 1660 wor wdtitle  ; window name
  68. 1670 byt close+toback+dragbr  ; wdflags
  69. 1680 byt 66  ; wdtitle size
  70. 1690 wor 0,0
  71. 1700 ;
  72. 1710 gadget1 wor gadget2  ; next gadget
  73. 1720 byt 18,30  ; ggx,ggy
  74. 1730 byt 22,13  ; width,height
  75. 1740 wor ggtext  ; gadget text
  76. 1750 byt ggflags  ; gadget flags
  77. 1760 wor 0,ggexec,0  ; gadget exec
  78. 1770 byt 0  ; user free
  79. 1780 wor exclist  ; exclude list
  80. 1790 ;
  81. 1800 gadget2 wor gadget3  ; next gadget
  82. 1810 byt 44,30  ; ggx,ggy
  83. 1820 byt 22,13  ; width,height
  84. 1830 wor 0  ; gadget text
  85. 1840 byt ggflags  ; gadget flags
  86. 1850 wor 0,ggexec,0  ; gadget exec
  87. 1860 byt 0  ; user free
  88. 1870 wor exclist  ; exclude list
  89. 1880 ;
  90. 1890 gadget3 wor 0  ; next gadget
  91. 1900 byt 70,30  ; ggx,ggy
  92. 1910 byt 22,13  ; width,height
  93. 1920 wor 0  ; gadget text
  94. 1930 byt ggflags+status  ; gadget flags
  95. 1940 wor 0,ggexec,0  ; gadget exec
  96. 1950 byt 0  ; user free
  97. 1960 wor exclist  ; exclude list
  98. 1970 ;
  99. 1980 exclist wor gadget1  ; exclude
  100. 1990 wor gadget2
  101. 2000 wor gadget3
  102. 2010 wor 0
  103. 2020 ;
  104. 2030 wdtitle byt "[205]y [215]indow",0
  105. 2040 ggtext byt 4,$f4,1  ; text struc
  106. 2050 byt "[205]utual [197]xclude",0
  107. 2060 ;
  108. 2070 ;------ gadget exec ----------
  109. 2080 ggexec inc $d020  ; gadget clicked
  110. 2090 rts
  111. 2100 ;
  112. 2110 ;------ unlink ---------------
  113. 2120 unlink ldx #<window  ; close wd
  114. 2130 ldy #>window
  115. 2140 jsr closewd
  116. 2150 ldx #<mn3it2  ; remove menu
  117. 2160 ldy #>mn3it2
  118. 2170 stx mn3it1
  119. 2180 sty mn3it1+1
  120. 2190 inc $8004  ; remove survive
  121. 2200 rts
  122. 2210 ;
  123. 2220 ;------ close window ---------
  124. 2230 closewd stx buf0
  125. 2240 sty buf1
  126. 2250 lda #wdonscreen  ; if wd open
  127. 2260 jsr gosub
  128. 2270 iny
  129. 2280 beq not
  130. 2290 ldx buf0  ; then closewd
  131. 2300 ldy buf1
  132. 2310 lda #setcurwd
  133. 2320 jsr gosub
  134. 2330 lda #wdclose
  135. 2340 jsr gosub
  136. 2350 not rts
  137. 2360 ;
  138. 2370 ;------ reset survive --------
  139. 2380 survive ldx #6-1  ; install code
  140. 2390 slp lda tabel,x
  141. 2400 sta $8000,x
  142. 2410 dex
  143. 2420 bpl slp
  144. 2430 rts
  145. 2440 tabel wor start+3
  146. 2450 byt "mg87"
  147. 2460 ;
  148. 2470 ;------ includes -------------
  149. 2480 openwindow=48
  150. 2490 wdonscreen=70
  151. 2500 wdclose=65
  152. 2510 setcurwd=29
  153.